package cn.iocoder.yudao.module.polling.controller.admin.pollingplan.vo;

import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
* 巡检计划 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class PollingPlanBaseVO {

    @ApiModelProperty(value = "计划编号")
    private String planCode;

    @ApiModelProperty(value = "计划名称")
    private String planName;

    @ApiModelProperty(value = "部门ID")
    private Integer deptId;

    @ApiModelProperty(value = "负责人ID")
    private Integer userId;

    @ApiModelProperty(value = "巡检类型ID")
    private Integer ptType;

    @ApiModelProperty(value = "有效时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date planValidTime;

    @ApiModelProperty(value = "提前生成时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date planAdvanceTime;

    @ApiModelProperty(value = "计划开始时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date planBeginTime;

    @ApiModelProperty(value = "计划结束时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date planEndTime;

    @ApiModelProperty(value = "上次生成时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date planLastTime;

    @ApiModelProperty(value = "下次生成时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date planNextTime;

    @ApiModelProperty(value = "是否启用")
    private Integer planEnable;

    @ApiModelProperty(value = "状态")
    private Integer planState;

    @ApiModelProperty(value = "审批结束时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date planApproveEndTime;

    @ApiModelProperty(value = "周期")
    private Integer planPeriodVal;

    @ApiModelProperty(value = "周期标题")
    private String planPeriodTitle;

    @ApiModelProperty(value = "有效时间值")
    private Integer planValidTimeVal;

    @ApiModelProperty(value = "提前生成时间值")
    private Integer planAdvanceTimeVal;

    @ApiModelProperty(value = "提醒时间值")
    private Integer planRemindTimeVal;

    @ApiModelProperty(value = "当前节点")
    private String planNode;

    @ApiModelProperty(value = "执行时间")
    private String planExecuteTime;

    @ApiModelProperty(value = "异常数")
    private Integer planErrorCount;

    @ApiModelProperty(value = "漏掉数")
    private Integer planMissingCount;

}
